package com.mongo.service;

import com.mongodb.client.MongoDatabase;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.gridfs.GridFsTemplate;

import java.util.Set;

/**
 * mongo顶层封装器
 * @author xiazhun
 * @create 2022/5/26
 */
public interface MongoWrapper{
    MongoTemplate mongoTemplate();

    default String getDbUrl(){
        return null;
    }
    default GridFsTemplate gridFsTemplate(){
        return null;
    };

    default MongoDatabase mongoDatabase(){
        return mongoTemplate().getDb();
    }

    default Set<String> getCollections(){
        return mongoTemplate().getCollectionNames();
    }

    default MongoDatabaseFactory mongoDatabaseFactory(){
        return mongoTemplate().getMongoDbFactory();
    }

}
